package com.dyzx.hbb.modules.wms.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import lombok.Data;

import java.util.List;


@Schema(description = "出库单信息")
@Data
public class WmsStockOutOrdersVO {
    /**
     * 状态 字典信息：sys_global_status   'Draft', 'Pending', 'Completed', 'Cancelled'
     */
    @Schema(description = "状态 字典信息：sys_global_status   'Draft', 'Pending', 'Completed', 'Cancelled'")
    private Integer status;


    /**
     * 出库单号 (如：OUT20240530001)
     */
    @Schema(description = "出库单号 (如：OUT20240530001)")
    private String no;

    /**
     * 数量
     */
    @Schema(description = "数量")
     @JsonProperty("quantity")
    private Integer quantity;

    /**
     * 价格
     */
    @Schema(description = "价格")
      @JsonProperty("price")
    private Long price;

    /**
     * 货位
     */
    @Schema(description = "货位")
     @JsonProperty("location_id")
    private Long locationId;

    /**
     * 货位
     */
     @Schema(description = "货位")
      @JsonProperty("location_area_id")
    private Long locationAreaId;

    /**
     * 仓库表（管理物理仓库信息）
     */
    @Schema(description = "仓库表（管理物理仓库信息）")
     @JsonProperty("house_id")
    private Long houseId;

    /**
     * 类别:'Sales', 'Transfer', 'Return', 'Scrap'
     */
    @Schema(description = "类别:'Sales', 'Transfer', 'Return', 'Scrap'")

     @JsonProperty("destination_type")
    private Integer destinationType;

    /**
     * 关联订单号（销售单/调拨单等）
     */
     @Schema(description = "关联订单号（销售单/调拨单等）")
      @JsonProperty("related_order_id")
    private Long relatedOrderId;

    /**
     * 详细
     */
     @Schema(description = "详细")
      @JsonProperty("description")
    private String description;

    /**
     * 产品表（管理产品信息）
     */
    @Schema(description = "产品表（管理产品信息）")
    @JsonProperty("details")
    //  @NotNull(message = "产品不能为空")
    @Valid
    private List<WmsStockOutDetailsVO> details;
}
